#include<stdio.h>
#include<sys/types.h>
#include<sys/stat.h>
#include<unistd.h>
#include<fcntl.h>
#include<string.h>

//int main()
//{   
//    //输出重定向现象
//    close(1);//stdout->fileno=1
//    //这里的id的分配规则是：最小的，没有被占用的文件描述符
//    int fd=open("log.txt",O_WRONLY|O_CREAT|O_TRUNC,0666);
//    if(fd<0)
//    {
//        perror("open");
//        return 1;
//    }
//
//    printf("fd:%d\n",fd);
//    fprintf(stdout,"hello world!\n");
////    const char* s="hello lh!\n";
////    fwrite(s,strlen(s),1,stdout);
//    
//    fflush(stdout);
//    close(fd);
//    return 0;
//}


int main()
{
    int fd=open("log.txt",O_WRONLY|O_TRUNC|O_CREAT,0666);
    if(fd<0)
    {
        perror("open");
        return 1;
    }
    //输出重定向，系统接口，把指针数组下标fd对应的内容拷贝到fd=1的显示屏中
    dup2(fd,1);
    printf("hello printf!\n");
    fprintf(stdout,"hello fprintf!\n");

    fputs("hello fputs!\n",stdout);
    const char* s="hello fwrite!\n";
    fwrite(s,strlen(s),1,stdout);

    close(fd);
    return 0;

}
